using JTZY.Model.Order.Dto;
using JTZY.Model.Order;

namespace JTZY.Service.Order.IOrderService
{
    /// <summary>
    /// 发货单表service接口
    /// </summary>
    public interface ICorecmsbilldeliveryService : IBaseService<Corecmsbilldelivery>
    {
        PagedInfo<CorecmsbilldeliveryDto> GetList(CorecmsbilldeliveryQueryDto parm);

        Corecmsbilldelivery GetInfo(string DeliveryId);


        Corecmsbilldelivery AddCorecmsbilldelivery(Corecmsbilldelivery parm);
        int UpdateCorecmsbilldelivery(Corecmsbilldelivery parm);

        /// <summary>
        ///     发货，单个订单发货
        /// </summary>
        /// <param name="orderId">英文逗号分隔的订单号</param>
        /// <param name="logiCode">物流公司编码</param>
        /// <param name="logiNo">物流单号</param>
        /// <param name="items">发货明细</param>
        /// <param name="storeId">店铺收货地址</param>
        /// <param name="shipName">收货人姓名</param>
        /// <param name="shipMobile">收货人电话</param>
        /// <param name="shipAreaId">省市区id</param>
        /// <param name="shipAddress">收货地址</param>
        /// <param name="memo">发货描述</param>
        /// <param name="deliveryCompanyId">第三方对接物流编码</param>
        /// <returns></returns>
        Task<WebApiCallBack> Ship(string orderId, string logiCode, string logiNo, Dictionary<int, int> items,
            int storeId = 0, string shipName = "", string shipMobile = "", int shipAreaId = 0, string shipAddress = "",
            string memo = "", string deliveryCompanyId = "");
    }
}
